home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C++ / Applications / Mic-1 v1.0 / Project and Source / Source / mic_main.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-07  |  1.9 KB  |  93 lines  |  [TEXT/CWIE]

  1. #ifndef _MIC_MAIN_
  2. #define _MIC_MAIN_
  3.  
  4. #include "mic_clock.h"
  5. #include "mic_memory.h"
  6. #include "mic_data_path.h"
  7. #include "mic_control.h"
  8.  
  9. /*
  10.     With containership, all of the contained classes must be accessible to the
  11.     contained classes at compile time. If separate files are needed, one may
  12.     simply declare the class without filling in any guts. After all, the
  13.     container doesn't care what's actually IN the contained classes.
  14. */
  15.  
  16. //••• CLOCK •••
  17. class ClockClass;
  18.  
  19. //••• MEMORY •••
  20. class MemoryClass;
  21.  
  22. //••• DATA PATH •••
  23. class MARClass;
  24. class MBRClass;
  25. class ScratchPadClass;
  26. class AMUXClass;
  27. class ALUClass;
  28. class ShifterClass;
  29. class A_LatchClass;
  30. class B_LatchClass;
  31.  
  32. //••• CONTROL •••
  33. class IncrementerClass;
  34. class MIRClass;
  35. class MPCClass;
  36. class MMUXClass;
  37. class ControlStoreClass;
  38. class MicroSeqClass;
  39.  
  40. // ••••••••••••• MIC-1 CLASS ••••••••••••••
  41. class Mic_1_Class
  42. {
  43.     public:
  44.     // CLOCK
  45.         ClockClass                Clock;
  46.         
  47.     // MEMORY
  48.         MemoryClass                Memory;
  49.         
  50.     // DATA PATH
  51.         MARClass                    MAR;
  52.         MBRClass                    MBR;
  53.         ScratchPadClass        ScratchPad;
  54.         AMUXClass                    AMUX;
  55.         ALUClass                    ALU;
  56.         ShifterClass            Shifter;
  57.         A_LatchClass            A_Latch;
  58.         B_LatchClass            B_Latch;
  59.         
  60.     // CONTROL            
  61.         IncrementerClass    Incrementer;
  62.         MIRClass                    MIR;
  63.         MPCClass                    MPC;
  64.         MMUXClass                    MMUX;
  65.         ControlStoreClass    ControlStore;
  66.         MicroSeqClass            MicroSeq;
  67. };
  68.  
  69. // •••••••••••••• CONSTANTS ••••••••••••••
  70. // Program Data
  71.     
  72. // Processor Options
  73.     // cycleBreakPoint
  74.         extern const short kRunConstant;
  75.         extern const short kRunInterrupted;
  76.  
  77. // Global vars
  78. typedef struct DataRec
  79. {
  80.     Boolean                    Done;                        // done with the program
  81.     Boolean                    doneExecuting;    // if the processor is done
  82.     unsigned long        Cycle;                    // how many cycles gone through
  83.     float                        CPS;                        // Cycles Per Second
  84. } DataRec, *DataRecPtr;
  85.  
  86. typedef struct OptionsRec
  87. {
  88. } OptionsRec, *OptionsRecPtr;
  89.  
  90. extern DataRec Data;
  91. extern OptionsRec options;
  92.  
  93. #endif